package com.appfahrt.persistence.obj;

import java.sql.Timestamp;
import java.util.ArrayList;

import com.appfahrt.persistence.obj.utility.ReflectionUtility;
import com.appfahrt.persistence.obj.utility.Utility;



public abstract class AbstractDatabaseObject {
	
	public final static String YES = "Y";
	public final static String NO = "N";
	
	
	/**
     * Indicates whether the object has
     * changed or not.
     */
    public abstract boolean hasChanged();
   
    public abstract ArrayList getChangedFieldList();
   
    public abstract boolean isNew();
   
    public abstract String getTable();
   
    public Object getValueForName(String name) {
        Object value = ReflectionUtility.getValue(this, Utility.createJavaNameFromFieldName(false, name));       
        return value;
    }

}
